<?php

class ordenes_femeba
{

	function get_ordenes_cabecera($where=null)
	{
		$where = isset($where) ? " AND $where " : "''";
		$sql = "SELECT 	fc.id as id,
						id_profesional,
						('('||pr.codigo_faba||') '|| pr.descripcion ) as desc_profesional,
						id_obra_social,
						os.descripcion as desc_obra_social,
						fecha_carga, 
						fecha_prescripcion,
						id_afiliado,
                                                PA.nro_socio as nro_afiliado,
						dni,
						estado,
						matricula_medico,
						diagnostico,
						fecha_realizacion
				  FROM femeba_cabecera fc
				  JOIN profesionales pr ON fc.id_profesional=pr.id
				  JOIN obras_sociales os ON fc.id_obra_social=os.id
                                  LEFT JOIN padrones PA on PA.id=fc.id_afiliado
				WHERE estado='I'
				$where
				ORDER BY 1 DESC";
                FB::info($sql,'Sql de la Consulta::');
		return toba::db()->consultar($sql);
	}
        
        function cambio_estado($id=null)
	{
		$sql = "UPDATE femeba_cabecera
                            SET estado='P'
                            WHERE id=$id";
                FB::info($sql,'Update del Registro::');
		return toba::db()->consultar($sql);
	}

	// Obras Sociales
	static function get_osoc_descripcion($oso=null)
	{
		if (empty($oso)) {
                    return array();
		}

		$sql = "SELECT  id,
				('('||codigo||') '|| descripcion ) as descripcion
				FROM obras_sociales
				WHERE id = $oso";
				$result = consultar_fuente($sql);
		return $result[0]['descripcion'];		
	}

	static function get_oso_editable($filtro=null)
	{
		if (! isset($filtro) || trim($filtro) == '') {
                    return array();
                }

                $where = '';
                $filtro = quote("%{$filtro}%");
		$sql = "SELECT  id,
				('('||codigo||') '|| descripcion ) as descripcion
			FROM obras_sociales
			WHERE (descripcion ILIKE $filtro or codigo ILIKE $filtro)";
                return consultar_fuente($sql);
	}	

	// Diagnosticos
	static function get_diag_descripcion($diag=null)
	{
		if (empty($diag)) {
            return array();
		}

		$sql = "SELECT  id,
						('('||id_diagnostico||') '|| descripcion)  as descripcion
				FROM diagnosticos
				WHERE id = $diag";
				$result = consultar_fuente($sql);
		return $result[0]['descripcion'];		
	}
	
	static function get_diag_editable($filtro=null)
	{
		if (! isset($filtro) || trim($filtro) == '') {
            return array();
        }

        $where = '';
        $filtro = quote("%{$filtro}%");
		$sql = "SELECT  id,
						('('||id_diagnostico||') '|| descripcion)  as descripcion
				FROM diagnosticos
				WHERE (descripcion ILIKE $filtro or id_diagnostico ILIKE $filtro)";
        return consultar_fuente($sql);
	}		

	// Medicos
	static function get_med_descripcion($med=null)
	{
		if (empty($med)) {
            return array();
		}

		$sql = "SELECT  id,
						('('||matricula||') '|| descripcion )  as descripcion
				FROM medicos
				WHERE id = $med";
				$result = consultar_fuente($sql);
		return $result[0]['descripcion'];		
	}
	
	static function get_med_editable($filtro=null)
	{
		if (! isset($filtro) || trim($filtro) == '') {
            return array();
        }

        $where = '';
        $filtro = quote("%{$filtro}%");
		$sql = "SELECT  id,
						('('||matricula||') '|| descripcion )  as descripcion
				FROM medicos
				WHERE (descripcion ILIKE $filtro or matricula ILIKE $filtro)";
		//print_r();		
        return consultar_fuente($sql);
	}			


	// Practicas
	static function get_pra_descripcion($id_practica=null)
	{
		if (! isset($id_practica)) {
			return array();
		}
		$id_practica = quote($id_practica);
		$sql = "SELECT  id,
						('('||codigo||') '|| descripcion )  as descripcion
				FROM nomen_unificado
				WHERE id = $id_practica";				
					
		$result = consultar_fuente($sql);
		//// FB::info($result);	
		return $result[0]['descripcion'];		
	}
	
	static function get_pra_editable($filtro=null)
	{
		if (! isset($filtro) || trim($filtro) == '') {
                    return array();
                }

		$nomen=toba::memoria()->get_dato('nomenclador');
                $where = '';
                FB::info($nomen,'Nomenclador que llega:::');
		if (isset($nomen)) {			
			$where = " AND nomenclador='$nomen'";
		}		
		
                $filtro = quote("%{$filtro}%");
		$sql = "SELECT  id as id_practica,
				('('||codigo||') '|| descripcion )  as descripcion
				FROM nomen_unificado
				WHERE (descripcion ILIKE $filtro or codigo ILIKE $filtro) 
				$where";

		FB::info($sql,'SQL del Editable::');
                //print($sql);
		return consultar_fuente($sql);
	}	
	
	function get_fecha_hoy()
	{
		// Devuelve la fecha de hoy
		$fecha=date("d/m/Y");
		return $fecha;
	}	
	
	function get_practicas_unidades($id=null)
	{
		$sql = "SELECT 	id,
						nomenclador,
						codigo,
						descripcion,
						unidad_gasto,
						unidad_honorario,
						es_rie,
						tipo,
						unidad_bioquimica_2009,
						unidad_bioquimica_2010,
						nivel,
						tabla,
						listado,
                                                equivalencia
                FROM nomen_unificado
				WHERE id=$id 
				ORDER BY 3,4";
		$rta=consultar_fuente($sql);
		//print($sql);
		//ei_arbol($rta);
		return $rta[0];
	}

	function get_practica_por_codigo($codigo,$nomenclador)
	{
		$sql = "SELECT 	id,
				nomenclador,
				codigo,
				descripcion,
				unidad_gasto,
				unidad_honorario,
				es_rie,
						tipo,
						unidad_bioquimica_2009,
						unidad_bioquimica_2010,
						nivel,
						tabla,
						listado
                FROM nomen_unificado
				WHERE 
					codigo='$codigo' AND
					nomenclador='$nomenclador'";

		$rta=consultar_fuente($sql);
		if(count($rta)>0) {
			return $rta[0];
		} else {
			return null;
		}
	}	
	
	function get_usuario($id=null)
	{
		return toba::usuario()->get_id();
	}	
	
	function get_usuario_profesional($id=null)
	{
		$usuario=toba::usuario()->get_id();
		$sql = "SELECT 	
				id,
				codigo_faba,
				descripcion,
				matricula,
				acreditado
		  FROM profesionales
		  WHERE codigo_faba='$usuario' 
		  ORDER BY 3";
		  return toba::db()->consultar($sql);
	}
	
	static function get_nomenclador()
	{
		$obsocial = toba::memoria()->get_dato('obsocial');
		if (! isset($obsocial)) {
            return '';
        }		
				
		$sql = "SELECT nomenclador_que_usa
				  FROM obras_sociales
				 WHERE id = $obsocial";
        $result = consultar_fuente($sql);
		return $result[0]['nomenclador_que_usa'];
	}	

	function get_practicas()
	{
		$nomen=toba::memoria()->get_dato('s__nomenclador');
		$where = '';
		if (isset($nomen)) {			
			$where = " WHERE nomenclador='$nomen'";
		}
		
		$sql = "SELECT 	id,
						descripcion
				  FROM nomen_unificado 
				$where
				ORDER BY 2";
		return toba::db()->consultar($sql);
	}
	
	static function get_practicas_editable($filtro=null,$nomenclador=null)
	{
		if (! isset($filtro) || trim($filtro) == '') {
            return array();
        }
        $filtro = quote("%{$filtro}%");
		//$nomenclador = toba::memoria()->get_dato('s__nomenclador');
		if (isset($nomenclador)) {			
			$where = " AND nomenclador='$nomenclador'";
		}		
				
		$sql = "SELECT 	id,
						('('||codigo||') '|| descripcion) as descripcion
				  FROM nomen_unificado
				 WHERE (('('||codigo||') '|| descripcion) ILIKE $filtro )
				 $where";
		//// FB::info($sql);
        return consultar_fuente($sql);
	}	
        
        
	// Practicas
	static function get_padron_descripcion($id_afiliado=null)
	{
		if (! isset($id_afiliado)) {
			return array();
		}
		$id_afiliado = quote($id_afiliado);
		$sql = "SELECT  id,
				('('||nro_socio||') '|| apenom )  as descripcion
				FROM padrones
				WHERE id = $id_afiliado";				
					
		$result = consultar_fuente($sql);
		//// FB::info($result);	
		return $result[0]['descripcion'];		
	}
	
	static function get_padron_editable($filtro=null)
	{
		if (! isset($filtro) || trim($filtro) == '') {
            return array();
        }

		$osoc=toba::memoria()->get_dato('osocial');
        $where = '';

		if (isset($osoc)) {			
			$where = " AND codigo='$osoc'";
		}		
		
        $filtro = quote("%{$filtro}%");
		$sql = "SELECT  id,
				('('||nro_socio||') '|| apenom )  as descripcion
				FROM padrones
				WHERE (apenom ILIKE $filtro or nro_socio ILIKE $filtro) 
				$where";

		return consultar_fuente($sql);
	}

	function get_pract_excepciones($where=null)
	{
		$where = isset($where) ? " WHERE $where " : '';
		$sql = "SELECT 	
					pe.id
			  	FROM 
			  		pract_excepciones pe
				$where";
		//print($sql);
		return toba::db()->consultar($sql);
	}
        
        
	function get_practicas_descripcion($where=null)
	{
            $where = isset($where) ? " WHERE $where " : '';
            $sql = "SELECT 	
                        descripcion,
                        unidad_bioquimica_2009
                    FROM nomen_unificado
                    $where";
            return toba::db()->consultar($sql);
	}        
        
        
	function get_practicas_equivalencia($vari=null)
	{        
            $where="codigo='$vari' and nomenclador='NB'";
            $sql="SELECT 	
                    equivalencia,
                    unidad_bioquimica_2009
                  FROM nomen_unificado
                  WHERE $where";
            return toba::db()->consultar($sql);
            FB::info($sql,'SQL de la Equivalencia::');
        }
        
}
?>